/*     */ package com.zimbra.qa.unittest;
/*     */ 
/*     */ import com.google.common.base.Splitter;
/*     */ import com.google.common.collect.Lists;
/*     */ import com.zimbra.common.service.ServiceException;
/*     */ import com.zimbra.common.util.Log;
/*     */ import com.zimbra.common.util.ZimbraLog;
/*     */ import com.zimbra.cs.extension.ExtensionUtil;
/*     */ import com.zimbra.qa.unittest.server.TestCalDavImportServer;
/*     */ import com.zimbra.qa.unittest.server.TestDataSourceServer;
/*     */ import com.zimbra.qa.unittest.server.TestDocumentServer;
/*     */ import com.zimbra.qa.unittest.server.TestNotificationServer;
/*     */ import com.zimbra.qa.unittest.server.TestPop3ImportServer;
/*     */ import java.util.ArrayList;
/*     */ import java.util.Collection;
/*     */ import java.util.List;
/*     */ import junit.framework.TestSuite;
/*     */ import org.junit.runner.JUnitCore;
/*     */ import org.junit.runner.Request;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public class ZimbraSuite
/*     */   extends TestSuite
/*     */ {
/*  50 */   private static final List<Class> sClasses = new ArrayList();
/*     */   
/*     */   static {
/*  53 */     sClasses.add(TestWaitSet.class);
/*  54 */     sClasses.add(TestWaitSetRequest.class);
/*  55 */     sClasses.add(TestUtilCode.class);
/*  56 */     sClasses.add(TestEmailUtil.class);
/*  57 */     sClasses.add(TestOutOfOffice.class);
/*  58 */     sClasses.add(TestDbUtil.class);
/*  59 */     sClasses.add(TestUnread.class);
/*  60 */     sClasses.add(TestTags.class);
/*  61 */     sClasses.add(TestItemCache.class);
/*  62 */     sClasses.add(TestFolders.class);
/*  63 */     sClasses.add(TestFolderACLCache.class);
/*  64 */     sClasses.add(TestSpellCheck.class);
/*  65 */     sClasses.add(TestAuthentication.class);
/*  66 */     sClasses.add(TestAccount.class);
/*  67 */     sClasses.add(TestConversion.class);
/*  68 */     sClasses.add(TestMailItem.class);
/*  69 */     sClasses.add(TestConcurrency.class);
/*  70 */     sClasses.add(TestFolderFilterRules.class);
/*  71 */     sClasses.add(TestTagFilterRules.class);
/*  72 */     sClasses.add(TestPop3Import.class);
/*  73 */     sClasses.add(TestPop3ImportServer.class);
/*  74 */     sClasses.add(TestFilter.class);
/*  75 */     sClasses.add(TestPop3ImapAuth.class);
/*  76 */     sClasses.add(TestContacts.class);
/*  77 */     sClasses.add(TestTaskScheduler.class);
/*  78 */     sClasses.add(TestSendAndReceive.class);
/*  79 */     sClasses.add(TestConnectionPool.class);
/*  80 */     sClasses.add(TestLmtp.class);
/*  81 */     sClasses.add(TestSmtpClient.class);
/*  82 */     sClasses.add(TestScheduledTaskManager.class);
/*  83 */     sClasses.add(TestDataSource.class);
/*  84 */     sClasses.add(TestDataSourceServer.class);
/*  85 */     sClasses.add(TestPurge.class);
/*  86 */     sClasses.add(TestImap.class);
/*  87 */     sClasses.add(TestImapImport.class);
/*  88 */     sClasses.add(TestImapOneWayImport.class);
/*  89 */     sClasses.add(TestNotification.class);
/*  90 */     sClasses.add(TestNotificationServer.class);
/*  91 */     sClasses.add(TestMaxMessageSize.class);
/*  92 */     sClasses.add(TestMetadata.class);
/*  93 */     sClasses.add(TestSoap.class);
/*  94 */     sClasses.add(TestBlobInputStream.class);
/*  95 */     sClasses.add(TestRedoLog.class);
/*  96 */     sClasses.add(TestFileUtil.class);
/*  97 */     sClasses.add(TestIndex.class);
/*  98 */     sClasses.add(TestParsedMessage.class);
/*  99 */     sClasses.add(TestUserServlet.class);
/* 100 */     sClasses.add(TestWsdlServlet.class);
/* 101 */     sClasses.add(TestMimeDetect.class);
/* 102 */     sClasses.add(TestDocument.class);
/* 103 */     sClasses.add(TestDocumentServer.class);
/* 104 */     sClasses.add(TestFileUpload.class);
/* 105 */     sClasses.add(TestFilterExisting.class);
/* 106 */     sClasses.add(TestSpam.class);
/* 107 */     sClasses.add(TestMailSender.class);
/* 108 */     sClasses.add(TestGetMsg.class);
/* 109 */     sClasses.add(TestMountpoint.class);
/* 110 */     sClasses.add(TestZClient.class);
/* 111 */     sClasses.add(TestLog.class);
/* 112 */     sClasses.add(TestSaveDraft.class);
/* 113 */     sClasses.add(TestServerStats.class);
/* 114 */     sClasses.add(TestJaxbProvisioning.class);
/* 115 */     sClasses.add(TestAclPush.class);
/* 116 */     sClasses.add(TestCalDav.class);
/* 117 */     sClasses.add(TestCalDavImportServer.class);
/* 118 */     sClasses.add(TestContactCSV.class);
/* 119 */     sClasses.add(TestStoreManager.class);
/* 120 */     sClasses.add(TestSoapHarvest.class);
/* 121 */     sClasses.add(TestBlobDeduper.class);
/* 122 */     sClasses.add(TestDistListACL.class);
/* 123 */     sClasses.add(TestCookieReuse.class);
/* 124 */     sClasses.add(TestCountObjects.class);
/* 125 */     sClasses.add(TestDomain.class);
/* 126 */     sClasses.add(TestMinusOperator.class);
/* 127 */     sClasses.add(TestInvite.class);
/* 128 */     sClasses.add(TestSearchJunkTrash.class);
/* 129 */     sClasses.add(TestCommunityIntegration.class);
/* 130 */     sClasses.add(TestJaxb.class);
/* 131 */     sClasses.add(TestCollectConfigServletsAccess.class);
/*     */     
/* 133 */     sClasses.add(TestDomainAdmin.class);
/* 134 */     sClasses.add(TestLockoutMailbox.class);
/* 135 */     sClasses.add(TestDeployZimlet.class);
/* 136 */     sClasses.add(TestServiceServlet.class);
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */   public static void addTest(Class clazz)
/*     */   {
/* 143 */     sClasses.add(clazz);
/*     */   }
/*     */   
/*     */   public static void removeTest(Class clazz) {
/* 147 */     sClasses.remove(clazz);
/*     */   }
/*     */   
/*     */   public static TestResults runUserTests(List<String> testNames) throws ServiceException {
/* 151 */     List<Class> tests = new ArrayList();
/* 152 */     List<Request> requests = new ArrayList();
/*     */     
/* 154 */     for (String testNameAndMethod : testNames) {
/* 155 */       List<String> testAndMethods = Lists.newArrayList(Splitter.on('#').split(testNameAndMethod));
/* 156 */       String testName = (String)testAndMethods.get(0);
/* 157 */       Class testClass = null;
/* 158 */       if (testName.indexOf('.') < 0)
/*     */       {
/* 160 */         boolean found = false;
/* 161 */         for (Class c : sClasses) {
/* 162 */           if (testName.equals(c.getSimpleName())) {
/* 163 */             testClass = c;
/* 164 */             found = true;
/*     */           }
/*     */         }
/* 167 */         if (!found) {
/* 168 */           ZimbraLog.test.warn("Could not find test %s.  Make sure it's registered with %s.", new Object[] { testName, ZimbraSuite.class.getName() });
/*     */         }
/*     */       }
/*     */       else {
/*     */         try {
/* 173 */           testClass = Class.forName(testName);
/*     */         } catch (ClassNotFoundException e) {
/*     */           try {
/* 176 */             testClass = ExtensionUtil.findClass(testName);
/*     */           } catch (ClassNotFoundException e2) {
/* 178 */             throw ServiceException.FAILURE("Error instantiating test " + testName, e2);
/*     */           }
/*     */         }
/*     */       }
/* 182 */       if (testAndMethods.size() > 1) {
/* 183 */         for (String method : Lists.newArrayList(Splitter.on('+').split((CharSequence)testAndMethods.get(1)))) {
/* 184 */           requests.add(Request.method(testClass, method));
/*     */         }
/*     */       } else {
/* 187 */         tests.add(testClass);
/*     */       }
/*     */     }
/*     */     
/* 191 */     return runTestsInternal(tests, requests);
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */   public static TestResults runTestSuite()
/*     */   {
/* 198 */     return runTestsInternal(sClasses, null);
/*     */   }
/*     */   
/*     */   private static TestResults runTestsInternal(Collection<Class> testClasses, Iterable<Request> requests) {
/* 202 */     JUnitCore junit = new JUnitCore();
/* 203 */     junit.addListener(new TestLogger());
/* 204 */     TestResults results = new TestResults();
/* 205 */     junit.addListener(results);
/*     */     
/* 207 */     if ((testClasses != null) && (testClasses.size() > 0)) {
/* 208 */       Class<?>[] classArray = new Class[testClasses.size()];
/* 209 */       testClasses.toArray(classArray);
/* 210 */       junit.run(classArray);
/*     */     }
/* 212 */     if (requests != null) {
/* 213 */       for (Request request : requests) {
/* 214 */         junit.run(request);
/*     */       }
/*     */     }
/* 217 */     return results;
/*     */   }
/*     */ }


/* Location:              /home/mint/zimbrastore.jar!/com/zimbra/qa/unittest/ZimbraSuite.class
 * Java compiler version: 7 (51.0)
 * JD-Core Version:       0.7.1
 */